home *** CD-ROM | disk | FTP | other *** search
-
-
-
- SCANF C Library Procedures SCANF
-
-
-
- NNAAMMEE
- scanf, fscanf, sscanf, vfscanf - formatted input conversion
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssttddiioo..hh>>
-
- ssccaannff((ffoorrmmaatt [ , pointer ] . . . ))
- cchhaarr **ffoorrmmaatt;;
-
- ffssccaannff((ssttrreeaamm,, ffoorrmmaatt [ , pointer ] . . . ))
- FFIILLEE **ssttrreeaamm;;
- cchhaarr **ffoorrmmaatt;;
-
- ssssccaannff((ss,, ffoorrmmaatt [ , pointer ] . . . ))
- cchhaarr **ss,, **ffoorrmmaatt;;
-
- ##iinncclluuddee <<vvaarraarrggss..hh>>
-
- vvffssccaannff((ssttrreeaamm,, ffoorrmmaatt,, aarrggss))
- FFIILLEE **ssttrreeaamm;;
- cchhaarr **ffoorrmmaatt;;
- vvaa__lliisstt aarrggss;;
-
- DDEESSCCRRIIPPTTIIOONN
- _S_c_a_n_f reads from the standard input stream ssttddiinn. _F_s_c_a_n_f
- reads from the named input _s_t_r_e_a_m. _S_s_c_a_n_f reads from the
- character string _s. _V_f_s_c_a_n_f provides an alternate form of
- _f_s_c_a_n_f in which the arguments have already been captured
- using the variable-length argument facilities provided by
- _v_a_r_a_r_g_s(_3). Each function reads characters, interprets them
- according to a format, and stores the results in its argu-
- ments. Each expects as arguments a control string _f_o_r_m_a_t,
- described below, and a set of _p_o_i_n_t_e_r arguments indicating
- where the converted input should be stored.
-
- The control string usually contains conversion specifica-
- tions, which are used to direct interpretation of input
- sequences. The control string may contain:
-
- 1. Blanks, tabs or newlines, which match optional white
- space in the input.
-
- 2. An ordinary character (not %) which must match the next
- character of the input stream.
-
- 3. Conversion specifications, consisting of the character
- %%, an optional assignment suppressing character **, an
- optional numerical maximum field width, and a conversion
- character.
-
- A conversion specification directs the conversion of the
- next input field; the result is placed in the variable
-
-
-
- Sprite v1.0 May 15, 1985 1
-
-
-
-
-
-
- SCANF C Library Procedures SCANF
-
-
-
- pointed to by the corresponding argument, unless assignment
- suppression was indicated by **. An input field is defined
- as a string of non-space characters; it extends to the next
- inappropriate character or until the field width, if speci-
- fied, is exhausted.
-
- The conversion character indicates the interpretation of the
- input field; the corresponding pointer argument must usually
- be of a restricted type. The following conversion charac-
- ters are legal:
-
- %% a single `%' is expected in the input at this point; no
- assignment is done.
-
- dd a decimal integer is expected; the corresponding argu-
- ment should be an integer pointer.
-
- oo an octal integer is expected; the corresponding argument
- should be a integer pointer.
-
- xx a hexadecimal integer is expected; the corresponding
- argument should be an integer pointer.
-
- ss a character string is expected; the corresponding argu-
- ment should be a character pointer pointing to an array
- of characters large enough to accept the string and a
- terminating `\0', which will be added. The input field
- is terminated by a space character or a newline.
-
- cc a character is expected; the corresponding argument
- should be a character pointer. The normal skip over
- space characters is suppressed in this case; to read the
- next non-space character, try `%1s'. If a field width
- is given, the corresponding argument should refer to a
- character array, and the indicated number of characters
- is read.
-
- ee
- ff
- a floating point number is expected; the next field is
- converted accordingly and stored through the correspond-
- ing argument, which should be a pointer to a _f_l_o_a_t. The
- input format for floating point numbers is an optionally
- signed string of digits possibly containing a decimal
- point, followed by an optional exponent field consisting
- of an E or e followed by an optionally signed integer.
-
- [[ indicates a string not to be delimited by space charac-
- ters. The left bracket is followed by a set of charac-
- ters and a right bracket; the characters between the
- brackets define a set of characters making up the
- string. If the first character is not circumflex (^),
- the input field is all characters until the first char-
- acter not in the set between the brackets; if the first
-
-
-
- Sprite v1.0 May 15, 1985 2
-
-
-
-
-
-
- SCANF C Library Procedures SCANF
-
-
-
- character after the left bracket is ^, the input field
- is all characters until the first character which is in
- the remaining set of characters between the brackets.
- The corresponding argument must point to a character
- array.
-
- The conversion characters dd, oo and xx may be capitalized or
- preceded by ll to indicate that a pointer to lloonngg rather than
- to iinntt is in the argument list. Similarly, the conversion
- characters ee or ff may be capitalized or preceded by ll to
- indicate a pointer to ddoouubbllee rather than to ffllooaatt. The
- conversion characters dd, oo and xx may be preceded by hh to
- indicate a pointer to sshhoorrtt rather than to iinntt.
-
- The _s_c_a_n_f functions return the number of successfully
- matched and assigned input items. This can be used to
- decide how many input items were found. The constant EEOOFF is
- returned upon end of input; note that this is different from
- 0, which means that no conversion was done; if conversion
- was intended, it was frustrated by an inappropriate charac-
- ter in the input.
-
- For example, the call
-
- int i; float x; char name[50];
- scanf("%d%f%s", &i, &x, name);
-
- with the input line
-
- 25 54.32E-1 thompson
-
- will assign to _i the value 25, _x the value 5.432, and _n_a_m_e
- will contain `_t_h_o_m_p_s_o_n_\_0'. Or,
-
- int i; float x; char name[50];
- scanf("%2d%f%*d%[1234567890]", &i, &x, name);
-
- with input
-
- 56789 0123 56a72
-
- will assign 56 to _i, 789.0 to _x, skip `0123', and place the
- string `56\0' in _n_a_m_e. The next call to _g_e_t_c_h_a_r will return
- `a'.
-
- SSEEEE AALLSSOO
- atof(3), getc(3S), printf(3S)
-
- DDIIAAGGNNOOSSTTIICCSS
- The _s_c_a_n_f functions return EEOOFF on end of input, and a short
- count for missing or illegal data items.
-
-
-
-
- Sprite v1.0 May 15, 1985 3
-
-
-
-
-
-
- SCANF C Library Procedures SCANF
-
-
-
- BBUUGGSS
- The success of literal matches and suppressed assignments is
- not directly determinable.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sprite v1.0 May 15, 1985 4
-
-
-
-